0 REM SPEED= <CTRL-Q> DEL 8 ONERR h DEL 9L MID$ <CTRL-C> INPUT G COLOR= " HGR g LOMEM: GH SPEED= HGR (hL<CTRL-[><UNKNOWN TOKEN> COLOR= -
1 ONERR GOTO 11000
3 REM *************************
4 REM ** T.O.U.G.H. SYSTEM **
5 REM ** MICRO-SPARC, INC. **
6 REM ** P.O. BOX 325 **
7 REM ** LINCOLN, MASS 01773 **
8 REM ** COPYRIGHT (C) 1980 **
9 REM *************************
10 REM RUNS ON 32-48K APPLE II OR APPLE II PLUS, APPLESOFT II (ROM , DISK II, PARALLEL OR SERIAL PRINTER (WITH PRTR CTRL CHANGES IN LINES 1215-1220, 1248-1250)
11 PRINT CHR$(4);"MAXFILES1"
12 CALL PEEK(103) + PEEK(104) *256 +5
13 TEXT : HOME
14 PRINT : PRINT "WHAT TITLE/SUBJECT WILL YOU USE?": PRINT "(PRESS RETURN TO SEE CATALOG)": INPUT " ";ST$: IF ST$ = "" THEN PRINT CHR$(4);"CATALOG": GOTO 14
16 GOSUB 10000: GOTO 50
18 CALL -936
19 IF SL <40 THEN PZ = 12: GOTO 22
20 IF SL >39 AND SL <80 THEN PZ = 6: GOTO 22
21 PZ = 4
22 IF R2 < >I THEN PZ = 4
23 FOR ZZ = R1 TO R2 +1 STEP PZ
24 FOR X = ZZ TO ZZ +PZ -1: IF X >R2 THEN NEXT : RETURN
25 PRINT X;")";: FOR XX = 1 TO LEN(L$(X)):M$ = MID$ (L$(X),XX,1)
26 INVERSE : IF M$ > CHR$(96) AND M$ < CHR$(123) THEN M = ASC(M$) -32:M$ = CHR$(M): NORMAL
27 IF M$ < CHR$(64) THEN NORMAL
30 PRINT M$;: NORMAL : NEXT XX: PRINT : NEXT X: VTAB 23: PRINT "HIT ANY KEY TO CONTINUE ";: GET ZZ$
31 HOME : NEXT ZZ
32 IF SL > = 80 THEN CC = PEEK(37) -2: VTAB 1: VTAB CC
50 HOME : TEXT : NORMAL : VTAB 8: FOR X = 0 TO 39: PRINT "*";: NEXT X: PRINT : VTAB 10: HTAB (15): INVERSE : PRINT "T.O.U.G.H.": NORMAL : HTAB 5: INVERSE : PRINT "COPYRIGHT 1980 (C) BY MICRO-SPARC": NORMAL
51 VTAB 14: PRINT "1= TYPE TEXT AND STORE ON DISK": PRINT "2= READ DISK AND PRINT": PRINT "3= READ DISK & EDIT/DELETE/INSERT TEXT"
52 PRINT "4= ADD SENTENCE(S) TO TEXT": VTAB 20: FOR X = 0 TO 39: PRINT "*";: NEXT X: PRINT
53 INVERSE : INPUT "<CTRL-G>ENTER YOUR SELECTION";V: NORMAL
54 IF V <1 OR V >4 THEN PRINT "INVALID ENTRY..TRY AGAIN": GOTO 53
60 IF V = 1 THEN GOSUB 10023
65 IF V = 2 OR V = 3 OR V = 4 THEN FLASH : PRINT "READING DISK": NORMAL : GOTO 600
91 TEXT : HOME : FOR X = 0 TO 39: PRINT "*";: NEXT X: PRINT "CTL 'X'","= ABORT CURRENT LINE": PRINT "RIGHT ARROW","= COPY CHARACTER": PRINT "LEFT ARROW","= BACKSPACE A WORD": PRINT "CTL 'Y'","= LINE, NO JUSTIFY"
107 IF K$ < CHR$(32) THEN K$ = CHR$( ASC(K$) +64):UC = 1: GOTO 109
108 K$ = CHR$( ASC(K$) -128):UC = 0
109 IF UC = 1 AND K$ > CHR$(64) AND K$ < CHR$(91) THEN INVERSE : PRINT K$;: NORMAL :UC = 0: GOTO 240
110 PRINT K$;: IF K$ = CHR$(34) THEN K$ = CHR$(39): REM SWITCH QUOTATION MARK
111 IF K$ = "@" THEN 500: REM '@" KEY TO TRIGGER DISK SAVE
112 IF UC = 0 AND K$ > CHR$(64) AND K$ < CHR$(91) THEN H = ASC(K$) +32:K$ = CHR$(H): REM TEST FOR <CTRL-A>ALPHA CHARACTER AND CONVERT TO LOWER-CASE
113 IF UC = 1 THEN UC = 0
114 IF XS = 1 THEN UC = 1
115 IF K$ > CHR$(31) THEN 240
120 IF K$ = CHR$(27) THEN UC = 1: GOTO 105: REM ESC KEY
121 IF K$ = CHR$(19) AND XS = 1 THEN XS = 0: GOTO 130: REM CTRL S
122 IF K$ = CHR$(19) AND XS = 0 THEN XS = 1
123 IF K$ = CHR$(24) THEN HOME : GOTO 865
130 IF UC = 0 AND K$ > CHR$(64) AND K$ < CHR$(91) THEN H = ASC(K$) +32:K$ = CHR$(H): REM TEST FOR ALPHA CHARACTER AND CONVERT TO LOWER-CASE
135 IF K$ = CHR$(26) OR K$ = CHR$(23) THEN K$ = CHR$( ASC(K$) +5)
150 IF K$ = CHR$(8) AND N = 1 AND LL = 0 THEN PRINT "":X$ = "": GOTO 105: REM LEFT ARROW BACKSPACE
151 IF K$ = CHR$(8) AND RIGHT$(X$,1) < >"" AND N = 1 THEN HTAB 1:X$ = "":LL = 0:FL = 0: GOTO 105
160 IF K$ = CHR$(8) AND LL > = 40 THEN 900
170 IF K$ = CHR$(8) THEN N = N -1:FL = FL -( LEN(X$) + LEN(A$(N))):LL = LL -( LEN(X$) + LEN(A$(N))): HTAB FL +1:X$ = "": GOTO 105
180 IF K$ = "@" THEN 500: REM '@" KEY TO TRIGGER DISK SAVE
190 IF FL = 40 THEN FL = 0
200 IF K$ = CHR$(13) THEN 800: REM RETURN KEY TO TRIGGER END OF LINE SPACING
210 IF K$ = CHR$(25) THEN A$(N) = X$:X$ = "": GOTO 950: REM CNTL-Y TRIGGERS UNJUSTIFIED END-OF-LINE
220 IF K$ = CHR$(20) THEN FOR X = 1 TO TB: PRINT S$;:X$ = X$ +S$:FL = FL +1:LL = LL +1: NEXT : GOTO 105
230 REM *** BUILD IN SPACES BETWEEN WORDS AND SENTENCES ***
240 IF K$ = " " AND X$ < >"" AND RIGHT$(X$,1) < >" " THEN A$(N) = X$ +S$:X$ = "":LL = LL +1:FL = FL +1: GOTO 104
250 IF UC = 1 THEN UC = 0
255 IF XS = 1 THEN UC = 1
260 IF K$ = CHR$(7) THEN 1300: REM CTRL G GETS THE EDIT OPTIONS LIST
265 IF K$ = CHR$(19) THEN 290: REM CTRL S LOCKS/UNLOCKS CAPITAL LETTERS
267 IF K$ < CHR$(32) THEN LL = LL -1:FL = FL -1
270 X$ = X$ +K$:LL = LL +1
280 FL = FL +1
290 IF LL > = SL -7 THEN PRINT CHR$(7);: REM END OF LINE BEEPER
295 GOTO 105
300 REM SET UP TEXT ENTRY SCREEN FORMAT SUBROUTINE
302 IF MU = 2 OR MU = 3 OR V = 3 THEN PRINT Z: GOTO 305
303 PRINT I
305 FOR KK = 1 TO SL -1: PRINT CHR$(95);: NEXT KK: PRINT
310 IF SL <41 THEN CC = PEEK(37): VTAB CC
315 IF SL > = 41 AND SL < = 80 THEN CC = PEEK(37) -1: VTAB CC
320 IF SL >80 THEN CC = PEEK(37) -2: VTAB CC
325 RETURN
500 REM ** WRITE **
502 PRINT D$;"OPEN TFILE-";ST$
505 PRINT D$;"WRITE TFILE-";ST$
510 PRINT I -1
512 PRINT SL
513 PRINT TB
515 FOR X = 1 TO I -1
520 PRINT CHR$(34);L$(X)
525 NEXT X
530 PRINT D$;"CLOSE"
535 IF RV$ = "B" THEN RETURN : REM RETURN TO CALL FROM LINE 1067
540 PRINT D$"IN#0": PRINT "END": END
600 X = 0: REM *** READ DISK FILE ***
602 PRINT D$;"OPEN TFILE-";ST$
605 PRINT D$;"READ TFILE-";ST$
610 INPUT I
612 INPUT SL
614 INPUT TB
625 FOR X = 1 TO I
630 CALL 768,L$(X)
632 IF LEN(L$(X)) >1 THEN L$(X) = RIGHT$(L$(X), LEN(L$(X)) -1)
633 IF LEN(L$(X)) = 1 THEN L$(X) = ""
635 NEXT
655 PRINT RT$;D$;"CLOSE"
700 REM *** OPTION BRANCH AFTER READING DISK ***
701 IF V = 1 THEN DMY = 1: INPUT "PRINT TO PRINTER? Y OR N";XX$: IF XX$ = "Y" THEN 1200
702 IF V = 3 THEN I = I +1: GOTO 1300
703 IF V = 4 THEN 710
705 GOTO 1200
709 REM *** ADD DATA ***
710 INVERSE : INPUT "REVIEW TEXT? Y OR N?";RV$: NORMAL
711 R1 = 1:R2 = I
712 IF RV$ = "Y" THEN R1 = 1:R2 = I: GOSUB 18
715 I = I +1:N = 0:LL = 0:FL = 0:TT = 0
717 INVERSE : INPUT "BEGIN NEW PARAGRAPH? Y OR N?";NP$: NORMAL
718 IF NP$ < >"Y" THEN 725
720 L$(I) = "":I = I +1: PRINT CHR$(13): REM INSERT EXTRA PARAGRAPH SPACE
725 GOTO 91
799 REM **** END OF LINE SPACING ****
800 L$(I) = "": IF N < = 1 AND FL < = 1 THEN 864
805 A$(N) = X$: FOR X = 1 TO N:TT = TT + LEN(A$(X)): NEXT X
810 LI = SL -LL -1
812 IF LI <0 THEN WK$ = RIGHT$(A$(N -1), ABS(LI) +1):LE = LEN(A$(N -1)) - ABS(LI) -1:A$(N -1) = LEFT$(A$(N -1),LE) +"-": GOTO 860
815 IF LI <N -2 AND AF = 1 THEN DMY = 1: FOR X = 1 TO LI +1:A$(X) = A$(X) +S$: NEXT X:AF = 0: GOTO 860
817 IF LI <N -2 AND AF = 0 THEN DMY = 1: FOR X = N -2 TO ((N -2) -LI) STEP -1:A$(X) = A$(X) +S$: NEXT X:AF = 1: GOTO 860
820 REM ** # OF FILL SPACES NEEDED > THAN # OF WORDS ... MULTIPLE PASSES **
822 IF N <3 THEN N = 3
825 ZZ = INT(LI/(N -2))
830 YY = LI -(ZZ *(N -2))
832 FOR M = 1 TO ZZ
835 FOR X = 1 TO N -2
840 A$(X) = A$(X) +S$
845 NEXT X: NEXT M
847 IF YY = 0 THEN A$(N -3) = A$(N -3) +S$: GOTO 860
850 IF FA = 1 THEN DMY = 1: FOR X = 1 TO YY +1:A$(X) = A$(X) +S$: NEXT X:FA = 0: GOTO 860
855 IF FA = 0 THEN DMY = 1: FOR X = N -2 TO ((N -2) -YY) STEP -1:A$(X) = A$(X) +S$: NEXT X:FA = 1
860 FOR X = 1 TO N -1:L$(I) = L$(I) +A$(X):A$(X) = "": NEXT X:LG = LEN(L$(I))
861 IF RIGHT$(L$(I),1) = " " THEN L$(I) = LEFT$(L$(I),LG -1)
862 IF MU >0 THEN RETURN
864 I = I +1
865 GOSUB 300
875 N = 1:LL = 0
880 X$ = ""
889 TT = 0:FL = 0
890 IF V = 3 THEN RETURN
892 IF MU >0 THEN RETURN
893 IF WK$ = "" THEN 105
894 DMY = 1: FOR MM = 1 TO LEN(WK$):M$ = MID$ (WK$,MM,1): INVERSE : IF M$ > CHR$(96) AND M$ < CHR$(123) THEN M$ = CHR$( ASC(M$) -32): NORMAL
895 IF M$ < CHR$(64) THEN NORMAL
896 PRINT M$;: NORMAL : NEXT :LE = LEN(WK$):FL = LE:LL = LE:A$(N) = WK$:N = N +1:WK$ = "": GOTO 105
900 REM BACKSPACING
901 IF LL = 40 OR LL = 80 THEN GT = 1: REM GATE FOR BACKSPACE TAB BETWEEN LINES NO OVERFLOW
902 IF LL < = 79 AND LL -( LEN(X$) + LEN(A$(N -1))) <40 THEN 915
904 IF LL > = 80 AND LL < = 119 AND LL -( LEN(X$) + LEN(A$(N -1))) <80 THEN 915
906 IF LL > = 120 AND LL < = 132 AND LL -( LEN(X$) + LEN(A$(N -1))) <120 THEN 915
907 CS = PEEK(37): VTAB 1: VTAB CS
908 GOTO 170: REM RETURN NO HIT
915 LL = LL -( LEN(X$) + LEN(A$(N -1)))
917 CS = PEEK(37)
918 IF GT = 1 THEN GT = 0: VTAB CS +1: GOTO 921
919 VTAB CS
921 FL = LL -( INT(LL/40) *40)
923 HTAB FL +1
925 N = N -1:X$ = ""
930 GOTO 105
949 REM **** NEW PGH WITH RIGHT ARROW ****
950 L$(I) = "": FOR X = 1 TO N -1:L$(I) = L$(I) +A$(X):A$(X) = "": NEXT :LG = LEN(L$(I)):L$(I) = LEFT$(L$(I),LG -1)
955 PRINT CHR$(13)
957 IF MU >0 THEN RETURN
961 GOTO 864
1000 REM ** EDITING ROUTINES **
1009 INVERSE :II = I: INPUT "ENTER LINE # TO RETYPE ";Z
1010 HOME : PRINT "LINE ";Z: FOR XX = 1 TO LEN(L$(Z)):M$ = MID$ (L$(Z),XX,1): INVERSE : IF M$ > CHR$(96) AND M$ < CHR$(123) THEN M = ASC(M$) -32:M$ = CHR$(M): NORMAL
1011 IF M$ < CHR$(64) THEN NORMAL
1012 PRINT M$;: NORMAL : NEXT : PRINT
1020 VTAB 10
1030 I = Z:N = 1:LL = 0:FL = 0:TT = 0: GOTO 105
1057 IF MU >0 THEN RETURN
1058 INVERSE : INPUT "ADD NEW TEXT? Y OR N?";RV$: NORMAL
1059 IF RV$ = "Y" THEN V = 4:I = I -1: GOTO 710
1060 INVERSE : PRINT "WRITE TO DISK OR PRINTER OR BOTH?": INPUT "'D' OR 'P' OR 'B'";RV$: NORMAL
1065 IF RV$ = "D" THEN 500
1066 IF MU >0 THEN RETURN
1067 IF RV$ = "B" THEN GOSUB 500
1070 GOTO 1200
1075 INVERSE : INPUT "DELETE OR ERASE LINE(S)? D OR E? ";DE$
1076 IF MU = 5 THEN DE$ = "ERASE"
1077 IF MU = 4 THEN DE$ = "DELETE"
1078 PRINT DE$;" FROM LINE #";: INPUT ML: INPUT "TO LINE #?";EL:NL = EL -ML: IF NL < = 0 THEN NL = 1: NORMAL
1079 IF MU = 5 THEN DMY = 1: FOR X = ML TO ML +NL -1:L$(X) = "": NEXT X: RETURN
1081 FOR X = ML TO I -NL:L$(X) = L$(X +NL): NEXT X:I = I -NL: FOR X = I +1 TO I +NL:L$(X) = "": NEXT X
1082 RETURN
1085 REM **** INSERT A LINE ****
1087 INVERSE : INPUT "INSERT FROM LINE #";ML: INPUT "TO LINE #";EL:NL = EL -ML: IF NL < = 0 THEN NL = 1: NORMAL
1089 FOR X = (I +NL) TO (ML +NL) STEP -1:L$(X) = L$(X -NL): NEXT X
1091 FOR X = ML TO ML +NL -1:L$(X) = "": NEXT X:I = I +NL
1092 RETURN
1200 REM *** PRINT ROUTINE ***
1202 INVERSE
1203 INPUT "AUTO PAGE NUMBER ON OVERFLOW? Y OR N";PO$
1205 INPUT "CENTER TEXT ON PAGE? Y OR N?";RV$
1206 INPUT "SINGLE OR DOUBLE SPACING? S OR D? ";SC$:MOD = 58: IF SC$ = "D" THEN MOD = 28
1207 INPUT "PRINT LINE #'S? Y OR N ";II$: PRINT "SPECIFY PRINT DENSITY (CHAR/INCH)": INPUT "1=8 2=10 3=12 4=16 CH/INCH ";CI
1208 IF CI = 1 THEN CI$ = CHR$(28):CP = 72:WS = 5
1209 IF CI = 2 THEN CI$ = CHR$(29):CP = 85:WS = 6
1210 IF CI = 3 THEN CI$ = CHR$(30):CP = 102:WS = 7
1211 IF CI = 4 THEN CI$ = CHR$(31):CP = 140:WS = 10
1212 INPUT "ENHANCED OR NORMAL MODE? E OR N? ";XX$
1213 IF XX$ = "E" THEN EN = 1:CP = INT(CP/2):WS = WS *2: GOTO 1215
1214 EN = 2
1215 PRINT D$;"PR#1": REM TURN ON PRINTER IN SLOT 1
1220 PRINT CHR$(9)"80N"
1221 PRINT CI$; CHR$(EN);
1224 CTR = 1
1225 IF RV$ = "Y" THEN CTR = INT(((CP -SL)/2) -WS)
1226 IF CTR <1 THEN CTR = 1
1227 PK = 0
1228 PG = 2
1229 IF II$ < >"Y" THEN 1235
1230 FOR X = 1 TO I:PK = PK +1: IF PO$ < >"Y" THEN 1232
1231 SP = INT((PK/MOD - INT(PK/MOD)) *MOD +.05) * SGN(PK/MOD): IF SP = 0 THEN GOSUB 40
1232 HTAB CTR: PRINT X;".";L$(X): IF SC$ = "D" THEN PRINT
1233 NEXT X: GOTO 1248
1235 FOR X = 1 TO I
1236 PK = PK +1: IF PO$ < >"Y" THEN 1239
1237 SP = INT((PK/MOD - INT(PK/MOD)) *MOD +.05) * SGN(PK/MOD): IF SP = 0 THEN GOSUB 40
1239 HTAB CTR: PRINT L$(X): IF SC$ = "D" THEN PRINT
1240 NEXT X
1248 PRINT CHR$(9);"40N": REM RESET PRINT LINE TO 40 CHARACTERS TO PREPARE FOR SHUTTING OFF PRINTER
1250 PRINT D$;"PR#0": REM SHUT OFF PRINTER
1255 HOME : PRINT "END OF PRINTING": INVERSE : INPUT "ANOTHER COPY? Y OR N ";ZZ$: NORMAL : IF ZZ$ = "Y" THEN 1213
1257 IF MU = 9 THEN RETURN
1260 END
1300 TEXT : HOME : FOR ZA = 0 TO 39: PRINT "*";: NEXT ZA: PRINT " ** EDITING OPTIONS LIST **"
1430 ML = S1 +NL:MU = 4: GOSUB 1081:MU = 7: REM DELETE SOURCE LINES
1435 RETURN
1500 REM RETYPE MULTI LINES
1505 INVERSE : INPUT "ENTER STARTING LINE # TO RETYPE ";Q1
1510 INPUT "ENTER THE ENDING LINE # TO RETYPE ";Q2: NORMAL
1512 IF Q2 >I THEN Q2 = I
1515 FOR QQ = Q1 TO Q2:Z = QQ: GOSUB 1010: NEXT QQ
1520 RETURN
1600 HOME : INPUT "SEARCH ALL LINES Y/N ? ";X$: IF X$ = "Y" THEN R1 = 1:R2 = I: GOTO 1602
1601 INPUT "STARTING LINE # ? ";R1: INPUT "ENDING LINE # ? ";R2: IF R1 <1 THEN R1 = 1
1602 IF R2 >I THEN R2 = I
1603 IF R1 >R2 THEN 1601
1604 PRINT "WHAT STRING TO SEARCH FOR ? ";:X$ = "":UC = 0: GOSUB 1690:SE$ = X$
1605 INPUT "REPLACE OR SEARCH ONLY ? R/S ";AN$: IF AN$ = "R" THEN PRINT "WHAT STRING TO REPLACE WITH ? ";:X$ = "":UC = 0: GOSUB 1690:RE$ = X$
1606 SW = 0: INPUT "BROAD OR EXACT SEARCH ? B/E ";X$: IF X$ = "B" THEN X$ = SE$:SE$ = "": FOR X = 1 TO LEN(X$):Q = ASC( MID$ (X$,X,1)):SE$ = SE$ + CHR$(Q -32 *(Q >95)): NEXT :SW = 1
1607 WS = 0: IF AN$ = "R" THEN INPUT "REPLACE AUTO OR MANUAL ? A/M ";XN$: IF XN$ = "M" THEN WS = 1
1608 INPUT "IS ALL DATA CORRECT ? Y/N ";K$: IF K$ < >"Y" THEN 1600
1610 HOME : POKE 34,9: VTAB 9: INVERSE : PRINT "SEARCHING LINE #": NORMAL :SE = LEN(SE$):RE = LEN(RE$): FOR X = R1 TO R2:LE = LEN(L$(X)): IF SE >LE OR LE = 0 THEN NEXT : RETURN
1611 IF SW = 0 THEN WK$ = L$(X): GOTO 1615
1613 WK$ = "": FOR Y = 1 TO LE:Z = ASC( MID$ (L$(X),Y,1)):WK$ = WK$ + CHR$(Z -32 *(Z >95)): NEXT
1615 FOR Y = 1 TO LE -SE +1: IF SE$ = MID$ (WK$,Y,SE) THEN GOSUB 1620:Y = Y +SE
1616 NEXT :X = X +1: POKE 1082, INT(X/100) +176: POKE 1083, INT((X - INT(X/100) *100)/10) +176: POKE 1084,(X - INT(X/10) *10) +176:X = X -1: NEXT
10029 PRINT "THE 'TEXT OUTPUTER, UPDATER, AND": PRINT "GENERALIZED FORMATTER (T.O.U.G.H.) IS": PRINT "A SYSTEM FOR MANAGING TEXT OF ALL"
10031 PRINT "TYPES. IN OPERATION WITH THE APPLE II": PRINT "AND THE IDS 440 PRINTER, IT CAN HANDLE": PRINT "4 DIFFERENT PRINT SIZES AS WELL AS WIDE"
10033 PRINT "'ENHANCED' PRINTING.": PRINT : PRINT "THE SYSTEM IS GENERALLY SELF-PROMPTING.": PRINT : PRINT "TO COMPENSATE FOR THE DIFFERENCES IN "
10035 PRINT "PRINT SIZES...WHICH BECOMES ESPECIALLY": PRINT "IMPORTANT IN AUTOMATIC TEXT CENTERING,": PRINT "USE THE FOLLOWING GUIDELINES:"
10037 PRINT "DECIDE WHICH SIZE TO USE FOR FINAL TEXT": PRINT "PRINTING. THEN USE THE TABLE ON THE": PRINT "NEXT PAGE TO DECIDE ON THE LINE LENGTH"
10039 PRINT : INPUT "HIT RETURN KEY TO GO TO NEXT PAGE";XX$
10041 HOME : HTAB 9: PRINT "** TABLE OF LINE LENGTHS **": PRINT : PRINT "DECIDE ON PRINT SIZE (8.3, 10, 12, 16.5": PRINT "CHARACTERS/INCH). THEN DECIDE ON NORMAL"
10043 PRINT "OR ENHANCED PRINTING. THEN TRY TO MAKE": PRINT "YOUR LINE LENGTH EQUAL TO OR LESS THAN": PRINT "THE LINE LENGTH SHOWN BELOW:"